Smart cards (also known as IC cards) are wallet-sized plastic cards that resemble a credit card in appearance, but incorporate embedded microchips capable of storing significantly more information than the familiar magnetic stripe. Because of the increased data storage capacity, smart cards provide a host of new possibilities for information storage and transmission not available through other technologies, and thus are becoming a significant part of the information processing world.
The portability of smart cards makes it possible for individuals to carry large amounts of important data, such as their entire medical history, in their wallet. Other applications of smart cards include their use in financial transactions; for example, smart cards are being used in France and Germany in public payphones. In Singapore, the smart card is being introduced as a replacement for coins and banknotes for everyday purchases.
The seemingly limitless possible uses for smart cards raises the very real concern of secure access to the information stored in such cards, especially in those instances where personal information such as social security numbers and sensitive financial information are stored. Typical smart cards will allow access to information if they are given the correct password. The most common form of password is the PIN (personal identification number), typically a six to eight digit number entered via a numeric keypad. In theory, the card cannot be accessed unless the correct PIN is entered, so that if the card is lost or stolen an unauthorized user will not have access to the information.
The International Standards Organization (ISO) has produced the ISO 7816 standard, which defines the electrical contacts used in smart cards and which is likely to be the standard that will be adopted by the smart card industry. FIG. 6 shows that an ISO 7816 smart card includes electrical contacts which provide access to the IC's formed within the smart card. The C1 terminal provides power (V.sub.cc) to the internal IC's. The C3 terminal is the input for an externally provided clock signal (CLK). Data is read and written through the C7 terminal. The ISO 7816 standard, therefore, defines how information is accessed and stored on the card. The standard, however, does not address smart card security.
The microchip(s) contained in a smart card typically employ E.sup.2 PROMs to store data. For example, the 24C0xSC series chips produced by Microchip Technology, Inc. include 1 K-bit or 2 K-bit E.sup.2 PROM arrays for data storage. Great care must be taken in the design of these non-volatile memories to insure against accidental corruption of the sensitive data stored therein. Equally important is the security of the data against unauthorized access to such data, which the 24C0xSC chips do not address.
Some integrated circuit vendors of smart card microchips incorporate security logic in their designs for this very purpose. For example Atmel Corp., assignee of the present invention, manufactures a smart card IC, the AT88SC10x, which features security code access to its data. The device permanently disables access upon a certain number of failed attempts to enter a valid code. Other chips, such as the SLE4436 M1 made by Siemens Corp., provide additional authentication through the storage of public keys. It has been observed, however, that the contents of a smart card data store can be detected despite such security features.
FIG. 7 shows a typical memory cell, such as E.sup.2 PROM or flash memory, consisting of a memory cell floating gate transistor 10, which is selected by a word select line. A sense amplifier 20 is coupled to the memory cell through a bit sense transistor 12 that is gated by a bit select line, for reading the memory cell. Typically, the sense amp 20 is driven by one of a number of memory cells. A dummy cell 14 and its associated circuitry 40 serves as compensation circuitry to account for differences among the memory cells due to process variations.
Operation of the memory cell 10 is well known. Briefly, a logic "0" or a logic "1" is represented respectively by not storing (erased) or storing (non-erased) a charge in the floating gate of the transistor 10. A stored charge on the floating gate raises the gate threshold voltage so that when the cell is selected (by asserting the word select line) the transistor will remain non-conductive by virtue of the increased gate threshold. Conversely, an erased cell is absent any such charge so that selecting the cell will cause the transistor to conduct.
The sense amplifier 20 includes a biasing circuit 22 consisting of transistors 31, 33, and 35. A current drive circuit 24 consists of a transistor 30 and a feedback circuit 32, 34. The output of the sense amplifier is provided at DATAOUT.
When the memory cell 10 is erased and is selected, the memory cell becomes conductive which will tend to bring the node 21 to ground. As a result, transistor 30 turns on strongly (via transistor 31) and transistor 32 is turned on through the feedback circuit 32, 34. A current path is created through transistors 30, 32, 12, and 10 to ground, thus bringing the node 23 to ground resulting in a low DATAOUT.
When the memory cell 10 is non-erased and is selected, the cell will not conduct. The feedback circuit 32, 34 maintains node 21 at a potential sufficient to turn on transistor 31 slightly. This begins to turn on transistor 30 so that node 23 approaches V.sub.cc resulting in a high DATAOUT.
As can be seen from the above explanation of FIG. 7 when the memory cell 10 is in an erased state, sensing of the memory cell will result in the flow of current through transistors 30, 32 of the sense amplifier 20 and through the transistor 10 to ground. Conversely when the memory cell is in a non-erased state, the cell is non-conductive when selected and so there will be no current flow through the transistors 30, 32. The power consumption of the sense amplifier 20, therefore, varies depending on the data content of the memory cell 10 during sensing of the memory cell. Thus, it is possible to ascertain the pattern of ones and zeroes comprising the data stored in the memory array, simply by clocking through the array while monitoring the current draw of the power supply and correlating the clock with measurements taken of the supply current.
Referring again to FIG. 6, it can be seen that smart cards are susceptible precisely to this type of attack on the security of the data stored therein. The security of smart cards can be breached by monitoring and recording changes in the current supplied to the V.sub.cc terminal (C1 in the case of ISO 7816 cards) while supplying a clock signal to the CLK terminal C3. The resulting supply current waveforms correspond directly to the data stored in the smart card, thus allowing a person to bypass any security measures built into the smart card and "read" the secured data.
What is needed is a memory device which can provide additional security beyond presently available methods for securing smart cards, thus rendering such cards impervious to attack by unauthorized persons. It is desirous to have a memory circuit which is safeguarded against unauthorized access by monitoring supply current, and therefore is highly secure.